package com.qianyitian.hope2.analyzer.analyzer;


import com.qianyitian.hope2.analyzer.config.Constant;
import com.qianyitian.hope2.analyzer.model.DemarkFlag;
import com.qianyitian.hope2.analyzer.model.KLineInfo;
import com.qianyitian.hope2.analyzer.model.ResultInfo;
import com.qianyitian.hope2.analyzer.model.Stock;

import java.util.*;

//1、Buy-Setup：买入结构的条件是连续9T或以上的收盘价低于先前第4个T的收盘价，视为一个完整的买入结构。
//（注：这里的限定条件是“连续”9T或以上，期间不能中断）
//2、Buy-Countdown：每当某个收盘价低于先前第2个T的最低价时计数增加1，计数可以不连续，当计数增加到13个交易日意味着卖盘动能已经耗尽，往往是下跌趋势的反转点。
//（注：这里的限定条件是累计13个T，不要求是“连续”的，期间可以中断）


//1、Sell-Setup：卖出结构的条件是连续9T或以上的收盘价高于先前第4个T的收盘价，视为一个完整的卖出结构。
//（注：这里的限定条件是“连续”9T或以上，期间不能中断）
//2、Sell-Countdown：每当某个收盘价高于先前第2个T的最高价时计数增加1，计数可以不连续，当计数增加到13个交易日意味着买盘动能已经耗尽，往往是上升趋势的反转点。
//（注：这里的限定条件是累计13个T，不要求是“连续”的，期间可以中断）

//目前不支持并发
public class DemarkNearCloseAnalyzer extends DemarkAnalyzer {
    private double range= 0.05;
    @Override
    public boolean analyze(ResultInfo resultInfo, Stock stock) {
       boolean ok=super.analyze(resultInfo,stock);
       if(ok){
           List<DemarkSelect> list=getSelectList();
           DemarkSelect demarkSelect = list.get(list.size() - 1);
           double bsPrice=demarkSelect.getSetupPoint().getClose();
           KLineInfo nowK=stock.getkLineInfos().get(stock.getkLineInfos().size() - 1);
           boolean yes=nowK.getClose()<=bsPrice*(1+range) && nowK.getMacd()>=0;
           return yes;
       }
       return false;
    }
}
